<?php

// [ JsApi ]
// https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

namespace app\wechat\lib;
use think\Config;
use app\wechat\lib\JsapiTicket;

class JsApi
{
    // @param  noncestr       随机字符串
    //         jsapi_ticket   临时票据
    //         timestamp      时间戳
    //         url            当前网页的URL，不包含#及其后面部分
    public static function run($url)
    {
        /* 参数
        noncestr       随机字符串
        jsapi_ticket   临时票据
        timestamp      时间戳
        url            当前网页的URL，不包含#及其后面部分
        */
        $tempArr = [
            'jsapi_ticket' => JsapiTicket::get(),
            'noncestr'     => mkstr(16),
            'timestamp'    => time(),
            'url'          => $url,
        ];
        // p($tempArr);

        // 字典序排序
        ksort($tempArr);
        // p($tempArr);

        // 生成 URL-encode 之后的请求字符串
        $str = '';
        foreach ($tempArr as $key => $val) {
            $str .= '&' . $key . '=' . $val;
        }
        $str = substr($str,1);
        // echo $str . '<br />';

        // sha1加密
        $signature = sha1($str);
        // echo $signature . '<br />';

        $arr = [
            'appId'     => Config::get('appid'),
            'timestamp' => $tempArr['timestamp'],
            'noncestr'  => $tempArr['noncestr'],
            'signature' => $signature,
            'jsapi_ticket' => $tempArr['jsapi_ticket'],
        ];
        // p($arr);die;

        return $arr;
    }
}